![]() |
![]() |
![]() | |
![]() ![]() ![]() ![]()
╟Γ≤Ω Γ α∩δσ≥α⌡ Java |
└∩δσ≥ PlayClip└∩δσ≥ PlayClip Σσ∞εφ±≥≡Φ≡≤σ≥ Φ±∩εδⁿτεΓαφΦσ Φφ≥σ≡⌠σΘ±α AudioClip. ┬ σπε εΩφσ (≡Φ±. 1) Φ∞σ■≥± ≥≡Φ Ωφε∩ΩΦ ± φατΓαφΦ ∞Φ Play, Loop Φ Stop. ╨Φ±. 1. ╬Ωφε α∩δσ≥α PlayClip ╤≡ατ≤ ∩ε±δσ τα∩≤±Ωα α∩δσ≥α Ωφε∩Ωα Stop φα⌡εΣΦ≥± Γ ταßδεΩΦ≡εΓαφφε∞ ±ε±≥ε φΦΦ. ┼±δΦ φαµα≥ⁿ Ωφε∩Ω≤ Play ΦδΦ Loop, φα≈φσ≥± , ±εε≥Γσ≥±≥Γσφφε, εΣφεΩ≡α≥φεσ ∩≡εΦπ≡√ΓαφΦσ ΦδΦ ∩≡εΦπ≡√ΓαφΦσ Γ ÷ΦΩδσ ⌠αΘδα ± Φ∞σφσ∞ kaas.au, ≡α±∩δεµσφφεπε Γ ≥ε∞ µσ Ωα≥αδεπσ, ≈≥ε Φ ΣΓεΦ≈φ√Θ ⌠αΘδ α∩δσ≥α PlayClip. ╩επΣα φα≈Φφασ≥± ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα, Ωφε∩Ωα Stop ≡ατßδεΩΦ≡≤σ≥± , ≈≥ε ∩ετΓεδ σ≥ ε±≥αφεΓΦ≥ⁿ ∩≡εΦπ≡√ΓαφΦσ. ╚±⌡εΣφ√σ ≥σΩ±≥√ ∩≡ΦδεµσφΦ╬±φεΓφεΘ ⌠αΘδ Φ±⌡εΣφ√⌡ ≥σΩ±≥εΓ ∩≡ΦδεµσφΦ ∩≡ΦΓσΣσφ Γ δΦ±≥Φφπσ 1. ╦Φ±≥Φφπ 1. ╘αΘδ PlayClip.java import java.applet.*; import java.awt.*; public class PlayClip extends Applet { private String m_ClipName = "kaas.au"; private final String PARAM_ClipName = "ClipName"; AudioClip auClip; Button btPlay; Button btLoop; Button btStop; boolean fLoopPlay = false; public String getAppletInfo() { return "Name: PlayClip"; } public String[][] getParameterInfo() { String[][] info = { { PARAM_ClipName, "String", "Audioclip filename" }, }; return info; } public void init() { String param; param = getParameter(PARAM_ClipName); if (param != null) m_ClipName = param; btPlay = new Button("Play"); btLoop = new Button("Loop"); btStop = new Button("Stop"); btStop.disable(); add(btPlay); add(btLoop); add(btStop); auClip = this.getAudioClip(getCodeBase(), m_ClipName); } public boolean action(Event evt, Object obj) { Button btn; if(evt.target instanceof Button) { btn = (Button)evt.target; if(evt.target.equals(btPlay)) { auClip.play(); btStop.enable(); } else if(evt.target.equals(btLoop)) { auClip.loop(); fLoopPlay = true; btStop.enable(); } else if(evt.target.equals(btStop)) { auClip.stop(); fLoopPlay = false; btStop.disable(); } else { return false; } return true; } return false; } public void paint(Graphics g) { Dimension dimAppWndDimension = size(); g.setColor(Color.yellow); g.fillRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1); g.setColor(Color.black); g.drawRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1); } public void start() { if(fLoopPlay) auClip.loop(); } public void stop() { if(fLoopPlay) auClip.stop(); } } ┬ δΦ±≥Φφπσ 2 Γ√ φαΘΣσ≥σ Φ±⌡εΣφ√Θ ≥σΩ±≥ ΣεΩ≤∞σφ≥α HTML, ±ετΣαφφεπε αΓ≥ε∞α≥Φ≈σ±ΩΦ Σδ φα°σπε ∩≡ΦδεµσφΦ ±Φ±≥σ∞εΘ Java WorkShop. ╦Φ±≥Φφπ 2. ╘αΘδ PlayClip.tmp.html <applet name="PlayClip" code="PlayClip" codebase= "file:/e:/sun/articles/vol14/src/PlayClip" width="200" height="100" align="Top" alt="If you had a java-enabled browser, you would see an applet here."> <param name="ClipName" value="kaas.au"> <hr> If your browser recognized the applet tag, you would see an applet here. <hr> </applet> ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α┬ πδαΓφε∞ Ωδα±±σ α∩δσ≥α ε∩≡σΣσδσφε φσ±ΩεδⁿΩε ∩εδσΘ Φ ∞σ≥εΣεΓ. ╨α±±∞ε≥≡Φ∞ ²≥Φ ∩εδ Φ φαΦßεδσσ Γαµφ√σ ∞σ≥εΣ√. ╧εδ Ωδα±±α PlayClip┬ ∩εδσ m_ClipName ⌡≡αφΦ≥± Φ∞ τΓ≤ΩεΓεπε ⌠αΘδα, Ωε≥ε≡εσ ∩σ≡σΣασ≥± ≈σ≡στ ∩α≡α∞σ≥≡ ClipName Φτ ΣεΩ≤∞σφ≥α HTML. ╧ε ≤∞εδ≈αφΦ■ Σδ ²≥επε ∩α≡α∞σ≥≡α Φ±∩εδⁿτ≤σ≥± τφα≈σφΦσ kaas.au. ╤≥≡εΩα PARAM_ClipName ⌡≡αφΦ≥ Φ∞ ≤Ωαταφφεπε Γ√°σ ∩α≡α∞σ≥≡α. ╤±√δΩα φα Φφ≥σ≡⌠σΘ± AudioClip ⌡≡αφΦ≥± Γ ∩εδσ auClip: AudioClip auClip; ╤δσΣ≤■∙Φσ ≥≡Φ ∩εδ ⌡≡αφ ≥ ±±√δΩΦ φα Ωφε∩ΩΦ, ∩≡σΣφατφα≈σφφ√σ Σδ ≤∩≡αΓδσφΦ ∩≡εΦπ≡√ΓαφΦσ∞ τΓ≤ΩεΓεπε ⌠αΘδα: Button btPlay; Button btLoop; Button btStop; ╧εδσ fLoopPlay ≥Φ∩α boolean Φ±∩εδⁿτ≤σ≥± Σδ ⌠δαπα, Ωε≥ε≡√∞ ε≥∞σ≈ασ≥± ≡σµΦ∞ ∩≡εΦπ≡√ΓαφΦ τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ. ╠σ≥εΣ getParameterInfo╠σ≥εΣ getParameterInfo ΓετΓ≡α∙ασ≥ ε∩Φ±αφΦσ σΣΦφ±≥Γσφφεπε ∩α≡α∞σ≥≡α φα°σπε α∩δσ≥α, ≈σ≡στ Ωε≥ε≡√Θ ∩σ≡σΣασ≥± Φ∞ τΓ≤ΩεΓεπε ⌠αΘδα. ╠σ≥εΣ init╤≡ατ≤ ∩ε±δσ τα∩≤±Ωα α∩δσ≥α ∞σ≥εΣ init ∩εδ≤≈ασ≥ τφα≈σφΦσ ∩α≡α∞σ≥≡α - Φ∞ τΓ≤ΩεΓεπε ⌠αΘδα, Φ σ±δΦ ²≥ε≥ ∩α≡α∞σ≥≡ ταΣαφ Γ ΣεΩ≤∞σφ≥σ HTML, τα∩Φ±√Γασ≥ ∩εδ≤≈σφφεσ Φ∞ Γ ∩εδσ m_ClipName: param = getParameter(PARAM_ClipName); if(param != null) m_ClipName = param; ─αδσσ ±ετΣα■≥± ≥≡Φ Ωφε∩ΩΦ, ≤∩≡αΓδ ■∙Φσ τΓ≤≈αφΦσ∞ α∩δσ≥α: btPlay = new Button("Play"); btLoop = new Button("Loop"); btStop = new Button("Stop"); ╩φε∩Ωα Stop ßδεΩΦ≡≤σ≥± , ≥αΩ ΩαΩ φα Σαφφ√Θ ∞ε∞σφ≥ ∩≡εΦπ≡√ΓαφΦσ σ∙σ φσ τα∩≤∙σφε: btStop.disable(); ─δ ßδεΩΦ≡εΓαφΦ Γ√τ√Γασ≥± ∞σ≥εΣ disable, ε∩≡σΣσδσφφ√Θ Γ Ωδα±±σ Button. ╧εΣπε≥εΓδσφφ√σ ≥αΩΦ∞ εß≡ατε∞ Ωφε∩ΩΦ ΣεßαΓδ ■≥± Γ εΩφε α∩δσ≥α: add(btPlay); add(btLoop); add(btStop); ╧ε±δσΣφσσ, ≈≥ε Σσδασ≥ ∞σ≥εΣ init ∩σ≡σΣ ≥σ∞ ΩαΩ ΓετΓ≡α≥Φ≥ⁿ ≤∩≡αΓδσφΦσ, ²≥ε ∩εδ≤≈σφΦσ ±±√δΩΦ φα Φφ≥σ≡⌠σΘ± AudioClip: auClip = this.getAudioClip( getCodeBase(),m_ClipName); └Σ≡σ± URL Ωα≥αδεπα, Γ Ωε≥ε≡ε∞ ≡α±∩εδεµσφ α∩δσ≥, ε∩≡σΣσδ σ≥± ± ∩ε∞ε∙ⁿ■ ∞σ≥εΣα getCodeBase, ε Ωε≥ε≡ε∞ ∞√ πεΓε≡ΦδΦ Γ ∩≡σΣ√Σ≤∙σΘ πδαΓσ. ╠σ≥εΣ action╠σ≥εΣ action ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ φα εΣφ≤ Φτ Ωφε∩εΩ, ≡α±∩εδεµσφφ√⌡ Γ εΩφσ α∩δσ≥α. ┬ ταΓΦ±Φ∞ε±≥Φ ε≥ ≥επε, ΩαΩα Φ∞σφφε Ωφε∩Ωα ß√δα φαµα≥α, Γ√∩εδφ ■≥± ≡ατδΦ≈φ√σ ΣσΘ±≥ΓΦ . ┼±δΦ ∩εδⁿτεΓα≥σδⁿ φαµαδ Ωφε∩Ω≤ Play, Γ√τ√Γασ≥± ∞σ≥εΣ play Σδ τα∩≤±Ωα εΣφεΩ≡α≥φεπε ∩≡εΦπ≡√ΓαφΦ τΓ≤ΩεΓεπε ⌠αΘδα: auClip.play(); btStop.enable(); ╤≡ατ≤ ∩ε±δσ ≥επε ΩαΩ ∩≡εΦπ≡√ΓαφΦσ ß≤Σσ≥ τα∩≤∙σφε, ∩≡ΦδεµσφΦσ ≡ατßδεΩΦ≡≤σ≥ Ωφε∩Ω≤ Stop, ∩≡σΣε±≥αΓδ ∩εδⁿτεΓα≥σδ■ Γετ∞εµφε±≥ⁿ ∩≡σ≡Γα≥ⁿ τΓ≤≈αφΦσ. ┬ ≥ε∞ ±δ≤≈ασ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ φαµαδ Ωφε∩Ω≤ Loop, Γ√τ√Γασ≥± ∞σ≥εΣ loop, τα∩≤±≈Ωα■∙ΦΘ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ: auClip.loop(); fLoopPlay = true; btStop.enable(); ╧ε±δσ τα∩≤±Ωα ≤±≥αφαΓδΦΓασ≥± ⌠δαπ fLoopPlay Φ ≡ατßδεΩΦ≡≤σ≥± Ωφε∩Ωα Stop. ╚, φαΩεφσ÷, σ±δΦ ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ Ωφε∩Ω≤ Stop, Γ√∩εδφ σ≥± ε±≥αφεΓΩα ∩≡εΦπ≡√ΓαφΦ ∞σ≥εΣε∞ stop: auClip.stop(); fLoopPlay = false; btStop.disable(); ╘δαπ fLoopPlay ±ß≡α±√Γασ≥± , ∩ε±δσ ≈σπε Ωφε∩Ωα Stop ßδεΩΦ≡≤σ≥± . ╠σ≥εΣ start╠σ≥εΣ start ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ ∩≡Φ ∩σ≡Γε∞ τα∩≤±Ωα α∩δσ≥α, α ≥αΩµσ ΩεπΣα ±≥≡αφΦ÷α ΣεΩ≤∞σφ≥α ∩ε Γδ σ≥± ΓφεΓⁿ ∩ε±δσ ≥επε ΩαΩ ∩εδⁿτεΓα≥σδⁿ Γ≡σ∞σφφε ∩σ≡σ⌡εΣΦδ Ω ∩≡ε±∞ε≥≡≤ Σ≡≤πεΘ ±≥≡αφΦ÷√. ═α°α ≡σαδΦτα÷Φ ∞σ≥εΣα start ΓετεßφεΓδ σ≥ ÷ΦΩδΦ≈σ±Ωεσ ∩≡εΦπ≡√ΓαφΦσ, σ±δΦ εφε Γ√∩εδφ δε±ⁿ, ΩεπΣα ∩εδⁿτεΓα≥σδⁿ ∩εΩΦφ≤δ ±≥≡αφΦ÷≤ ± α∩δσ≥ε∞: if(fLoopPlay) auClip.loop(); ╠σ≥εΣ stop┼±δΦ ∩εδⁿτεΓα≥σδⁿ τα∩≤±≥Φδ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα Γ ÷ΦΩδσ, α τα≥σ∞ ∩σ≡σ°σδ Ω ∩≡ε±∞ε≥≡≤ Σ≡≤πεΘ ±≥≡αφΦ÷√, ∞σ≥εΣ stop ε±≥αφαΓδΦΓασ≥ ÷ΦΩδΦ≈σ±Ωεσ ∩≡εΦπ≡√ΓαφΦσ: if(fLoopPlay) auClip.stop(); ╩επΣα ∩εδⁿτεΓα≥σδⁿ Γσ≡φσ≥± Ω ∩≡ε±∞ε≥≡≤ φα°σΘ ±≥≡αφΦ÷√, ∞σ≥εΣ start, ε∩Φ±αφφ√Θ Γ√°σ, ΓετεßφεΓΦ≥ ∩≡εΦπ≡√ΓαφΦσ τΓ≤ΩεΓεπε ⌠αΘδα. |